<template>
  <div class="tab-control">
    <div
      class="tab-control-item"
      v-for="(item, index) in titles"
      :key="'title' + index"
      :class="{active: currentIndex == index}"
      @click="itemClick(index)"
    >
      <span>{{ item }}</span>
    </div>
  </div>
</template>

<script>
export default {
  name: "TabControl",

  props: {
    // 控制导航 >>> 文字
    titles: {
      type: Array,
      default() {
        return [];
      },
    },
  },

  data() {
    return {
      // 当前哪个类别标题处于选中状态
      currentIndex: 0,
    };
  },

  methods: {
    // 点击某个类别的标题
    itemClick(index) {
      this.currentIndex = index;
      this.$emit("tabClick", index);
    },
  },
};
</script>

<style lang="less" scoped>
.tab-control {
  display: flex;
  // flex布局 >>> 垂直居中
  // align-items: center;
  text-align: center;
  background-color: var(--color-background);

  .tab-control-item {
    flex: 1;
    height: 44px;
    line-height: 44px;
    // cursor: pointer;
  }

  .active {
    color: var(--color-high-text);
    span {
      // 设置sapn标签[上下左右]都有5像素的内边距, 这样子边框与文字上下就会有距离 而且宽度会比文字稍微宽
      // TODO: 大师我悟了 以后需要调整边框就是简简单单了...
      padding: 5px;
      border-bottom: 2px solid var(--color-high-text);
    }
  }
}
</style>